// var i;
// var $bundleConfig = require("./BundleConfig");
// var $eventManager = require("./EventManager");
// var $resKeeper = require("./ResKeeper");
// var $evenType = require("./EvenType");
// var $gameDataManager = require("./GameDataManager");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var $nodePoolMag = require("./NodePoolMag");
// var $uI_Bullet = require("./UI_Bullet");
// var $uI_BulletBomb = require("./UI_BulletBomb");
// var $uI_BulletMove = require("./UI_BulletMove");
// var $uI_Player = require("./UI_Player");
// var b = cc._decorator;
// var w = b.ccclass;
// var I = b.property;
// var M = b.inspector;
// var E = (function (e) {
//     function t() {
//         var t = (null !== e && e.apply(this, arguments)) || this;
//         t.gridNode = null;
//         t.playerNode = null;
//         t.bulletNode = null;
//         t.mosterNode = null;
//         t.boosTip = null;
//         t.isok = !0;
//         t.nowindex = -1;
//         t.offtime = 0;
//         return t;
//     }
//     __extends(t, e);
//     t.prototype.onEnable = function () {
//         var e = this;
//         $eventManager.EventMgr.addEventListener($evenType.EVENT_TYPE.GAME_UPDATE_BAG, this.initUi, this);
//         $eventManager.EventMgr.addEventListener($evenType.EVENT_TYPE.GAME_SHOW_BOOS, this.showBoosTip, this);
//         this.isok = !0;
//         this.scheduleOnce(function () {
//             e.isok = !1;
//             e.initUi();
//         }, 0.5);
//     };
//     t.prototype.showBoosTip = function () {
//         var e = this;
//         if (!this.boosTip.active) {
//             this.boosTip.active = !0;
//             var t = this.node.getChildByName("gezibg1");
//             this.boosTip.width = t.width + 95;
//             this.boosTip.height = t.height + 90;
//             this.boosTip.opacity = 0;
//             cc.tween(this.boosTip)
//                 .to(0.2, {
//                     opacity: 255
//                 })
//                 .start();
//             this.scheduleOnce(function () {
//                 cc.tween(e.boosTip)
//                     .to(0.2, {
//                         opacity: 0
//                     })
//                     .call(function () {
//                         e.boosTip.active = !1;
//                     })
//                     .start();
//             }, 2);
//         }
//     };
//     t.prototype.onGameState = function (e) {
//         if (1 == e) {
//             this.huishouNode();
//         }
//     };
//     t.prototype.huishouNode = function () {
//         var e = this.playerNode.children;
//         var t = e.length;
//         for (var o = 0; o < t; o++) {
//             var n = e[0];
//             $nodePoolMag.NodePoolMag.instance.recycleNode("player" + n.getComponent($uI_Player.default).playerId, n);
//         }
//         var i = this.bulletNode.children;
//         var a = this.bulletNode.children.length;
//         for (o = 0; o < a; o++) {
//             if ((l = (n = i[0]).getComponent($uI_Bullet.default))) {
//                 $nodePoolMag.NodePoolMag.instance.recycleNode("bullet_" + l.bulletId, n);
//             }
//         }
//         if ($gameGlobalVariable.GameGlobalVariable.liulianNode) {
//             var r = $gameGlobalVariable.GameGlobalVariable.liulianNode.children;
//             var c = r.length;
//             for (o = 0; o < c; o++) {
//                 var s = r[0];
//                 var l = s.getComponent($uI_BulletMove.default);
//                 $nodePoolMag.NodePoolMag.instance.recycleNode("bullet_" + l.bulletId, s);
//             }
//         }
//         if ($gameGlobalVariable.GameGlobalVariable.languaNode) {
//             var u = $gameGlobalVariable.GameGlobalVariable.languaNode.children;
//             var d = u.length;
//             for (o = 0; o < d; o++) {
//                 var p = u[0];
//                 l = p.getComponent($uI_BulletBomb.default);
//                 $nodePoolMag.NodePoolMag.instance.recycleNode("bullet_" + l.bulletId, p);
//             }
//         }
//     };
//     t.prototype.initUi = function () {
//         return __awaiter(this, void 0, void 0, function () {
//             var e;
//             var t;
//             var o;
//             var n;
//             var i;
//             var a;
//             var r;
//             var c;
//             var u;
//             var d;
//             var p;
//             var _;
//             var y;
//             var m;
//             var b;
//             var w;
//             var I;
//             var M;
//             var E;
//             return __generator(this, function (s) {
//                 switch (s.label) {
//                     case 0:
//                         if (this.isok) {
//                             return [2];
//                         }
//                         if (!(new Date().getTime() - this.offtime > 100)) {
//                             return [3, 12];
//                         }
//                         this.offtime = new Date().getTime();
//                         this.huishouNode();
//                         e = 0;
//                         t = 0;
//                         o = 0;
//                         n = 0;
//                         i = $gameDataManager.GameDataMgr.gameBag.cellWposArray;
//                         a = Math.max(this.gridNode.children.length, i.length);
//                         m = 0;
//                         s.label = 1;
//                     case 1:
//                         if (m < a) {
//                             return (
//                                 (r = i[m]),
//                                 (M = this.gridNode.children[m]),
//                                 r
//                                     ? ((r = this.gridNode.convertToNodeSpaceAR(r)),
//                                       M || ((M = cc.instantiate(this.gridNode.children[0])), this.gridNode.addChild(M)),
//                                       (M.active = !0),
//                                       (c = M.getChildByName("grid").getComponent(cc.Sprite)),
//                                       [
//                                           4,
//                                           this._loadRes(
//                                               $bundleConfig.BundleNames.Game,
//                                               "res/bg/" + $gameGlobalVariable.GameGlobalVariable.getSceneId(),
//                                               cc.SpriteFrame
//                                           )
//                                       ])
//                                     : [3, 3]
//                             );
//                         } else {
//                             return [3, 5];
//                         }
//                     case 2:
//                         u = s.sent();
//                         c.spriteFrame = u;
//                         M.x = r.x;
//                         M.y = r.y;
//                         if (M.x < e) {
//                             e = M.x;
//                         }
//                         if (M.x > t) {
//                             t = M.x;
//                         }
//                         if (M.y > n) {
//                             n = M.y;
//                         }
//                         if (M.y < o) {
//                             o = M.y;
//                         }
//                         return [3, 4];
//                     case 3:
//                         if (M) {
//                             M.active = !1;
//                         }
//                         s.label = 4;
//                     case 4:
//                         m++;
//                         return [3, 1];
//                     case 5:
//                         d = this.node.getChildByName("gezibg1");
//                         p = d.getComponent(cc.Sprite);
//                         return [
//                             4,
//                             this._loadRes(
//                                 $bundleConfig.BundleNames.Game,
//                                 "res/bg/gezibg" + $gameGlobalVariable.GameGlobalVariable.getSceneId(),
//                                 cc.SpriteFrame
//                             )
//                         ];
//                     case 6:
//                         _ = s.sent();
//                         p.spriteFrame = _;
//                         d.width = Math.abs(e - t) + 170;
//                         d.height = Math.abs(o - n) + 170;
//                         y = $gameDataManager.GameDataMgr.gameBag.dressUpEquips;
//                         m = 0;
//                         s.label = 7;
//                     case 7:
//                         if (!(m < 1)) {
//                             return [3, 12];
//                         }
//                         b = 0;
//                         s.label = 8;
//                     case 8:
//                         if (b < y.length) {
//                             return -1 != this.nowindex && this.nowindex != b
//                                 ? [3, 10]
//                                 : ((w = y[b]),
//                                   [
//                                       4,
//                                       this._loadRes(
//                                           $bundleConfig.BundleNames.Game,
//                                           "prefabs/player/player" + (w.shuiguoId - 1e3),
//                                           cc.Prefab
//                                       )
//                                   ]);
//                         } else {
//                             return [3, 11];
//                         }
//                     case 9:
//                         I = s.sent();
//                         if (!(M = $nodePoolMag.NodePoolMag.instance.getNode("player" + (w.shuiguoId - 1e3)))) {
//                             $nodePoolMag.NodePoolMag.instance.createNodeCount("player" + (w.shuiguoId - 1e3), 1, I);
//                             M = $nodePoolMag.NodePoolMag.instance.getNode("player" + (w.shuiguoId - 1e3));
//                         }
//                         E = this.playerNode.convertToNodeSpaceAR(w.wPostion);
//                         M.x = E.x;
//                         M.y = E.y;
//                         this.playerNode.addChild(M);
//                         M.getComponent($uI_Player.default).initPlayerInfo(this.mosterNode, w);
//                         s.label = 10;
//                     case 10:
//                         b++;
//                         return [3, 8];
//                     case 11:
//                         m++;
//                         return [3, 7];
//                     case 12:
//                         return [2];
//                 }
//             });
//         });
//     };
//     t.prototype.onDisable = function () {
//         $eventManager.EventMgr.rmEventListener($evenType.EVENT_TYPE.GAME_UPDATE_BAG, this.initUi, this);
//         $eventManager.EventMgr.rmEventListener($evenType.EVENT_TYPE.GAME_SHOW_BOOS, this.showBoosTip, this);
//     };
//     __decorate([I(cc.Node)], t.prototype, "gridNode", void 0);
//     __decorate([I(cc.Node)], t.prototype, "playerNode", void 0);
//     __decorate([I(cc.Node)], t.prototype, "bulletNode", void 0);
//     __decorate([I(cc.Node)], t.prototype, "mosterNode", void 0);
//     __decorate([I(cc.Node)], t.prototype, "boosTip", void 0);
//     return __decorate([w], t);
// })($resKeeper.default);
// exports.default = E;


// import { BundleNames } from "./BundleConfig";
// import { EVENT_TYPE } from "./EvenType";
// import { EventMgrInstance } from "./EventManager";
// import { GameDataMgr } from "./GameDataManager";
// import { GameGlobalVariable } from "./GameGlobalVariable";
// import { NodePoolMag } from "./NodePoolMag";
// import ResKeeper from "./ResKeeper";
// import UI_Bullet from "./UI_Bullet";
// import UI_BulletBomb from "./UI_BulletBomb";
// import UI_BulletMove from "./UI_BulletMove";
// import UI_Player from "./UI_Player";

// const { ccclass, property } = cc._decorator;

// /**
//  * 建议类名：GameUIManager
//  */
// @ccclass
// class UI_GameViewMap extends ResKeeper {
//     @property(cc.Node)
//     gridNode: cc.Node = null;

//     @property(cc.Node)
//     playerNode: cc.Node = null;

//     @property(cc.Node)
//     bulletNode: cc.Node = null;

//     @property(cc.Node)
//     mosterNode: cc.Node = null;

//     @property(cc.Node)
//     boosTip: cc.Node = null;

//     private isok: boolean = true;
//     private nowindex: number = -1;
//     private offtime: number = 0;

//     onEnable() {
//         EventMgrInstance.addEventListener(EVENT_TYPE.GAME_UPDATE_BAG, this.initUi, this);
//         EventMgrInstance.addEventListener(EVENT_TYPE.GAME_SHOW_BOOS, this.showBoosTip, this);
//         this.isok = true;
//         this.scheduleOnce(() => {
//             this.isok = false;
//             this.initUi();
//         }, 0.5);
//     }

//     /**
//      * 显示Boss提示
//      * 建议方法名：displayBossTip
//      */
//     showBoosTip() {
//         if (!this.boosTip.active) {
//             this.boosTip.active = true;
//             const gridBgNode = this.node.getChildByName("gezibg1");
//             this.boosTip.width = gridBgNode.width + 95;
//             this.boosTip.height = gridBgNode.height + 90;
//             this.boosTip.opacity = 0;
//             cc.tween(this.boosTip)
//                 .to(0.2, { opacity: 255 })
//                 .start();
//             this.scheduleOnce(() => {
//                 cc.tween(this.boosTip)
//                     .to(0.2, { opacity: 0 })
//                     .call(() => {
//                         this.boosTip.active = false;
//                     })
//                     .start();
//             }, 2);
//         }
//     }

//     /**
//      * 游戏状态处理
//      * 建议方法名：handleGameState
//      */
//     onGameState(state: number) {
//         if (state === 1) {
//             this.huishouNode();
//         }
//     }

//     /**
//      * 回收节点
//      * 建议方法名：recycleNodes
//      */
//     huishouNode() {
//         const playerChildren = this.playerNode.children;
//         const playerCount = playerChildren.length;
//         for (let i = 0; i < playerCount; i++) {
//             const playerNode = playerChildren[0];
//             NodePoolMag.instance.recycleNode("player" + playerNode.getComponent(UI_Player).playerId, playerNode);
//         }

//         const bulletChildren = this.bulletNode.children;
//         const bulletCount = bulletChildren.length;
//         for (let i = 0; i < bulletCount; i++) {
//             const bulletNode = bulletChildren[0];
//             const bulletComponent = bulletNode.getComponent(UI_Bullet);
//             if (bulletComponent) {
//                 NodePoolMag.instance.recycleNode("bullet_" + bulletComponent.bulletId, bulletNode);
//             }
//         }

//         if (GameGlobalVariable.liulianNode) {
//             const liulianChildren = GameGlobalVariable.liulianNode.children;
//             const liulianCount = liulianChildren.length;
//             for (let i = 0; i < liulianCount; i++) {
//                 const liulianNode = liulianChildren[0];
//                 const bulletMoveComponent = liulianNode.getComponent(UI_BulletMove);
//                 NodePoolMag.instance.recycleNode("bullet_" + bulletMoveComponent.bulletId, liulianNode);
//             }
//         }

//         if (GameGlobalVariable.languaNode) {
//             const languaChildren = GameGlobalVariable.languaNode.children;
//             const languaCount = languaChildren.length;
//             for (let i = 0; i < languaCount; i++) {
//                 const languaNode = languaChildren[0];
//                 const bulletBombComponent = languaNode.getComponent(UI_BulletBomb);
//                 NodePoolMag.instance.recycleNode("bullet_" + bulletBombComponent.bulletId, languaNode);
//             }
//         }
//     }

//     /**
//      * 初始化UI
//      * 建议方法名：initializeUI
//      */
//     async initUi() {
//         if (this.isok) {
//             return;
//         }

//         if (new Date().getTime() - this.offtime <= 100) {
//             return;
//         }

//         this.offtime = new Date().getTime();
//         this.huishouNode();

//         let minX = 0;
//         let maxX = 0;
//         let minY = 0;
//         let maxY = 0;

//         const cellWposArray = GameDataMgr.gameBag.cellWposArray;
//         const maxLength = Math.max(this.gridNode.children.length, cellWposArray.length);

//         for (let i = 0; i < maxLength; i++) {
//             const cellPos = cellWposArray[i];
//             let gridChild = this.gridNode.children[i];

//             if (cellPos) {
//                 const nodeSpacePos = this.gridNode.convertToNodeSpaceAR(cellPos);
//                 if (!gridChild) {
//                     gridChild = cc.instantiate(this.gridNode.children[0]);
//                     this.gridNode.addChild(gridChild);
//                 }
//                 gridChild.active = true;
//                 const gridSprite = gridChild.getChildByName("grid").getComponent(cc.Sprite);
//                 const spriteFrame = await this._loadRes(BundleNames.Game, "res/bg/" + GameGlobalVariable.getSceneId(), cc.SpriteFrame);
//                 gridSprite.spriteFrame = spriteFrame as cc.SpriteFrame;
//                 gridChild.x = nodeSpacePos.x;
//                 gridChild.y = nodeSpacePos.y;

//                 if (gridChild.x < minX) {
//                     minX = gridChild.x;
//                 }
//                 if (gridChild.x > maxX) {
//                     maxX = gridChild.x;
//                 }
//                 if (gridChild.y > maxY) {
//                     maxY = gridChild.y;
//                 }
//                 if (gridChild.y < minY) {
//                     minY = gridChild.y;
//                 }
//             } else if (gridChild) {
//                 gridChild.active = false;
//             }
//         }

//         const gridBgNode = this.node.getChildByName("gezibg1");
//         const gridBgSprite = gridBgNode.getComponent(cc.Sprite);
//         const gridBgSpriteFrame = await this._loadRes(BundleNames.Game, "res/bg/gezibg" + GameGlobalVariable.getSceneId(), cc.SpriteFrame);
//         gridBgSprite.spriteFrame = gridBgSpriteFrame as cc.SpriteFrame;
//         gridBgNode.width = Math.abs(minX - maxX) + 170;
//         gridBgNode.height = Math.abs(minY - maxY) + 170;

//         const dressUpEquips = GameDataMgr.gameBag.dressUpEquips;
//         for (let i = 0; i < 1; i++) {
//             for (let j = 0; j < dressUpEquips.length; j++) {
//                 if (this.nowindex !== -1 && this.nowindex !== j) {
//                     continue;
//                 }

//                 const equip = dressUpEquips[j];
//                 const prefab = (await this._loadRes(BundleNames.Game, "prefabs/player/player" + (equip.shuiguoId - 1000), cc.Prefab)) as cc.Prefab;
//                 let playerNode = NodePoolMag.instance.getNode("player" + (equip.shuiguoId - 1000));
//                 if (!playerNode) {
//                     NodePoolMag.instance.createNodeCount("player" + (equip.shuiguoId - 1000), 1, prefab);
//                     playerNode = NodePoolMag.instance.getNode("player" + (equip.shuiguoId - 1000));
//                 }
//                 const nodeSpacePos = this.playerNode.convertToNodeSpaceAR(equip.wPostion);
//                 playerNode.x = nodeSpacePos.x;
//                 playerNode.y = nodeSpacePos.y;
//                 this.playerNode.addChild(playerNode);
//                 playerNode.getComponent(UI_Player).initPlayerInfo(this.mosterNode, equip);
//             }
//         }
//     }

//     onDisable() {
//         EventMgrInstance.rmEventListener(EVENT_TYPE.GAME_UPDATE_BAG, this.initUi, this);
//         EventMgrInstance.rmEventListener(EVENT_TYPE.GAME_SHOW_BOOS, this.showBoosTip, this);
//     }

//     /**
//      * 加载资源
//      * 建议方法名：loadResource
//      */
//     protected async _loadRes(bundleName: string, path: string, type: typeof cc.Asset): Promise<cc.Asset> {
//         return new Promise((resolve, reject) => {
//             cc.assetManager.loadBundle(bundleName, (err, bundle) => {
//                 if (err) {
//                     reject(err);
//                     return;
//                 }
//                 bundle.load(path, type, (err, asset) => {
//                     if (err) {
//                         reject(err);
//                         return;
//                     }
//                     resolve(asset);
//                 });
//             });
//         });
//     }
// }

// export default UI_GameViewMap;

import { BundleNames } from "./BundleConfig";
import { EVENT_TYPE } from "./EvenType";
import { EventMgrInstance } from "./EventManager";
import { GameDataMgr } from "./GameDataManager";
import { GameGlobalVariable } from "./GameGlobalVariable";
import { NodePoolMag } from "./NodePoolMag";
import ResKeeper from "./ResKeeper";
import ViewBullet from "./UI_Bullet";
import ViewBulletBomb from "./UI_BulletBomb";
import ViewBulletMove from "./UI_BulletMove";
import ViewPlayer from "./UI_Player";

const { ccclass, property } = cc._decorator;

/**
 * 建议类名：GameUIManager
 */
@ccclass
class ViewGameViewMap extends ResKeeper {
    @property(cc.Node)
    gridNode: cc.Node = null;

    @property(cc.Node)
    playerNode: cc.Node = null;

    @property(cc.Node)
    bulletNode: cc.Node = null;

    @property(cc.Node)
    mosterNode: cc.Node = null;

    @property(cc.Node)
    boosTip: cc.Node = null;

    private isOk: boolean = true;
    private currentIndex: number = -1;
    private lastUpdateTime: number = 0;

    onEnable() {
        EventMgrInstance.addListener(EVENT_TYPE.GAME_UPDATE_BAG, this.initUI, this);
        EventMgrInstance.addListener(EVENT_TYPE.GAME_SHOW_BOOS, this.displayBossTip, this);
        this.isOk = true;
        this.scheduleOnce(() => {
            this.isOk = false;
            this.initUI();
        }, 0.5);
    }

    /**
     * 显示Boss提示
     * 建议方法名：displayBossTip
     */
    displayBossTip() {
        if (!this.boosTip.active) {
            this.boosTip.active = true;
            const gridBgNode = this.node.getChildByName("gezibg1");
            this.boosTip.width = gridBgNode.width + 95;
            this.boosTip.height = gridBgNode.height + 90;
            this.boosTip.opacity = 0;
            cc.tween(this.boosTip)
                .to(0.2, { opacity: 255 })
                .start();
            this.scheduleOnce(() => {
                cc.tween(this.boosTip)
                    .to(0.2, { opacity: 0 })
                    .call(() => {
                        this.boosTip.active = false;
                    })
                    .start();
            }, 2);
        }
    }

    /**
     * 游戏状态处理
     * 建议方法名：handleGameState
     */
    handleGameState(state: number) {
        if (state === 1) {
            this.recycleNodes();
        }
    }

    /**
     * 回收节点
     * 建议方法名：recycleNodes
     */
    recycleNodes() {
        const playerChildren = this.playerNode.children;
        while (playerChildren.length > 0) {
            const playerNode = playerChildren[0];
            NodePoolMag.instance.recycleNodeToPool("player" + playerNode.getComponent(ViewPlayer).playerId, playerNode);
        }

        const bulletChildren = this.bulletNode.children;
        while (bulletChildren.length > 0) {
            const bulletNode = bulletChildren[0];
            const bulletComponent = bulletNode.getComponent(ViewBullet);
            if (bulletComponent) {
                NodePoolMag.instance.recycleNodeToPool("bullet_" + bulletComponent.bulletId, bulletNode);
            }
        }

        if (GameGlobalVariable.liulianNode) {
            const liulianChildren = GameGlobalVariable.liulianNode.children;
            while (liulianChildren.length > 0) {
                const liulianNode = liulianChildren[0];
                const bulletMoveComponent = liulianNode.getComponent(ViewBulletMove);
                NodePoolMag.instance.recycleNodeToPool("bullet_" + bulletMoveComponent.bulletId, liulianNode);
            }
        }

        if (GameGlobalVariable.languaNode) {
            const languaChildren = GameGlobalVariable.languaNode.children;
            while (languaChildren.length > 0) {
                const languaNode = languaChildren[0];
                const bulletBombComponent = languaNode.getComponent(ViewBulletBomb);
                NodePoolMag.instance.recycleNodeToPool("bullet_" + bulletBombComponent.bulletId, languaNode);
            }
        }
    }

    /**
     * 初始化UI
     * 建议方法名：initializeUI
     */
    async initUI() {
        if (this.isOk) {
            return;
        }

        if (new Date().getTime() - this.lastUpdateTime <= 100) {
            return;
        }

        this.lastUpdateTime = new Date().getTime();
        this.recycleNodes();

        let minX = 0, maxX = 0, minY = 0, maxY = 0;
        const cellWposArray = GameDataMgr.getGameBag.cellWposArray;
        const maxLength = Math.max(this.gridNode.children.length, cellWposArray.length);

        for (let i = 0; i < maxLength; i++) {
            const cellPos = cellWposArray[i];
            let gridChild = this.gridNode.children[i];

            if (cellPos) {
                const nodeSpacePos = this.gridNode.convertToNodeSpaceAR(cellPos);
                if (!gridChild) {
                    gridChild = cc.instantiate(this.gridNode.children[0]);
                    this.gridNode.addChild(gridChild);
                }
                gridChild.active = true;
                const gridSprite = gridChild.getChildByName("grid").getComponent(cc.Sprite);
                const spriteFrame = await this._loadRes(BundleNames.Game, "res/bg/" + GameGlobalVariable.getSceneId(), cc.SpriteFrame);
                gridSprite.spriteFrame = spriteFrame as cc.SpriteFrame;
                gridChild.x = nodeSpacePos.x;
                gridChild.y = nodeSpacePos.y;

                minX = Math.min(minX, gridChild.x);
                maxX = Math.max(maxX, gridChild.x);
                minY = Math.min(minY, gridChild.y);
                maxY = Math.max(maxY, gridChild.y);
            } else if (gridChild) {
                gridChild.active = false;
            }
        }

        const gridBgNode = this.node.getChildByName("gezibg1");
        const gridBgSprite = gridBgNode.getComponent(cc.Sprite);
        const gridBgSpriteFrame = await this._loadRes(BundleNames.Game, `res/bg/gezibg${GameGlobalVariable.getSceneId()}`, cc.SpriteFrame);
        gridBgSprite.spriteFrame = gridBgSpriteFrame as cc.SpriteFrame;
        gridBgNode.width = Math.abs(minX - maxX) + 170;
        gridBgNode.height = Math.abs(minY - maxY) + 170;

        const dressUpEquips = GameDataMgr.getGameBag.dressUpEquips;
        for (let j = 0; j < dressUpEquips.length; j++) {
            if (this.currentIndex !== -1 && this.currentIndex !== j) {
                continue;
            }

            const equip = dressUpEquips[j];
            const prefab = (await this._loadRes(BundleNames.Game, `prefabs/player/player${equip.shuiguoId - 1000}`, cc.Prefab)) as cc.Prefab;
            let playerNode = NodePoolMag.instance.getNodeFromPool(`player${equip.shuiguoId - 1000}`);
            if (!playerNode) {
                NodePoolMag.instance.createNodePool(`player${equip.shuiguoId - 1000}`, 1, prefab);
                playerNode = NodePoolMag.instance.getNodeFromPool(`player${equip.shuiguoId - 1000}`);
            }
            const nodeSpacePos = this.playerNode.convertToNodeSpaceAR(equip.wPostion);
            playerNode.x = nodeSpacePos.x;
            playerNode.y = nodeSpacePos.y;
            this.playerNode.addChild(playerNode);
            playerNode.getComponent(ViewPlayer).initializePlayerInfo(this.mosterNode, equip);
        }
    }

    onDisable() {
        EventMgrInstance.removeListener(EVENT_TYPE.GAME_UPDATE_BAG, this.initUI, this);
        EventMgrInstance.removeListener(EVENT_TYPE.GAME_SHOW_BOOS, this.displayBossTip, this);
    }

    /**
     * 加载资源
     * 建议方法名：loadResource
     */
    protected async _loadRes(bundleName: string, path: string, type: typeof cc.Asset): Promise<cc.Asset> {
        return new Promise((resolve, reject) => {
            cc.assetManager.loadBundle(bundleName, (err, bundle) => {
                if (err) {
                    reject(err);
                    return;
                }
                bundle.load(path, type, (err, asset) => {
                    if (err) {
                        reject(err);
                        return;
                    }
                    resolve(asset);
                });
            });
        });
    }
}

export default ViewGameViewMap;